package cn.kgc.mybatis.mapper;

import cn.kgc.mybatis.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 课工场
 * @date 2024/1/26
 * @description  动态sql
 * 动态 SQL 是 MyBatis 的强大特性之一。
 * 如果你使用过 JDBC 或其它类似的框架，你应该能理解根据不同条件拼接 SQL 语句有多痛苦，
 * 例如拼接时要确保不能忘记添加必要的空格，还要注意去掉列表最后一个列名的逗号。
 * 利用动态 SQL，可以彻底摆脱这种痛苦。
 * 1. 项目中搜索业务      tel   username
 *                 select  *  from user
 * tel :           select  *  from user  where tel = ?
 * username :      select  *  from user  where username = ?
 * tel,username :  select  *  from user  where username = ?  and tel = ?
 *
 * 1. 罗列所有可能得sql语句
 * if(tel!=null && username!=null){
 *     select  *  from user  where username = ?  and tel = ?
 * }
 *
 * 2.sql语句的字符串拼接
 * String sql =  "select  *  from user where 1==1 "
 * if(tel!=null){
 *      sql+=" and tel = ?"
 * }
 *
 * if(username!=null){
 *     sql+=" and username = ?"
 * }
 *
 */

public interface UserMapper {

    List<User>  searchUsers(User user);


    Integer updateUser(User user);

    Integer batchDelete(@Param("ids") List<Integer> ids);



}
